package com.example.threadPool;

public interface ThreadPool<Job extends Runnable> {
    /**
     * 方法说明：执行job，这个job需要实现Runable
     * @param job
     * @return void
     * @throws
     * @Author xiaohf
     * @Date 2022/10/18 20:20
     **/
    void execute(Job job);

    /**
     * 方法说明：关闭线程池
     * @param
     * @return void
     * @throws
     * @Author xiaohf
     * @Date 2022/10/18 20:20
     **/
    void shutdown();

    /**
     * 方法说明：增加工作线程
     * @param num
     * @return void
     * @throws
     * @Author xiaohf
     * @Date 2022/10/18 20:22
     **/
    void addWorkers(int num);

    /**
     * 方法说明：减少工作线程
     *
     * @param num
     * @return void
     * @throws
     * @Author xiaohf
     * @Date 2022/10/18 20:22
     **/
    void removeWorker(int num);

    /**
     * 方法说明：获取等待执行的任务数量
     * @param
     * @return int
     * @throws
     * @Author xiaohf
     * @Date 2022/10/18 20:23
     **/
    int getJobSize();

}
